package org.hawk.gwt.ppc.reflect.lang;

import org.hawk.gwt.ppc.reflect.emul.java.lang.reflect.GenericDeclaration;
import org.hawk.gwt.ppc.reflect.emul.java.lang.reflect.Type;

/**
 * This interface is generally workaround for the fact that {@link Class} type
 * is not implements java.lang.reflect.Type and java.lang.reflect.GenericDeclaration
 * interfaces. You can access the actual {@link Class} object using {@link #toClass()}
 * method of instances of this type.
 *  
 * @author alex.bereznevatiy@gmail.com
 *
 * @param <T>
 */
public interface GWTClassType<T> extends Type, GenericDeclaration {
	/**
	 * @return internal GWT class presentation to be compatible with not
	 *         processed code.
	 */
	Class<T> toClass();
}
